package cn.lxh.blog.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * ArticleType文章类型类
 */
@Data
public class ArticleType {
    /** id表示文章类型编号 */
    private Long id;

    /** typeName表示文章类型名称 */
    private String typeName;

    /** status表示文章类型状态 */
    private Integer status;

    // 当前字段转换成Json格式数据时格式化, 格式pattern=年[year]-月[month]-日[day]
    // timezone时区, 中国在时间标准时间GMT的东八区, 也叫+8区
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    /** createTime表示文章类型创建时间 */
    private Date createTime = new Date();

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    /** updateTime表示文章类型修改时间 */
    private Date updateTime;

    /** 表示文章类型的上级id */
    private Long parentId;

    /** parentTypeName表示父类型名称 */
    private String parentTypeName;

    // 添加一个集合, 保存自己的所有子类型
    // 注意: 前端我们使用的是ElementUI的级联框, 默认子类型集合属性名就是children
    @JsonInclude(JsonInclude.Include.NON_EMPTY) // 类型树最后一级没有数据就不显示
    /** children表示文章类型的子类型 */
    private List<ArticleType> children = new ArrayList<>();
}
